Skip to content

[2/N] feat(runway): add Merger extension interface, mock, and noop impl#250

Open
kevinlnew wants to merge 2 commits into
runway/rfcfrom
runway/vcs-extension
Open

[2/N] feat(runway): add Merger extension interface, mock, and noop impl#250
kevinlnew wants to merge 2 commits into
runway/rfcfrom
runway/vcs-extension

Conversation

@kevinlnew

@kevinlnew kevinlnew commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Summary

Define the pluggable VCS interface with CheckMergeability (read-only,
request-level) and Land (mutating, batch-level) methods. Land returns
[]Outcome so the controller owns Result assembly. Includes generated
mock and a noop implementation for wiring and tests.

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

Test Plan

Issues

Stack

  1. [1/N] docs(rfc): add runway workflow RFC #268
  2. @ [2/N] feat(runway): add Merger extension interface, mock, and noop impl #250

@kevinlnew kevinlnew changed the title feat(runway): add VCS extension interface, mock, and noop impl (#3) [3/N] feat(runway): add VCS extension interface, mock, and noop impl (#3) Jun 16, 2026
@kevinlnew kevinlnew changed the title [3/N] feat(runway): add VCS extension interface, mock, and noop impl (#3) [3/N] feat(runway): add VCS extension interface, mock, and noop impl Jun 16, 2026
@kevinlnew kevinlnew force-pushed the runway/vcs-extension branch from 05a53c0 to 7aa8d2d Compare June 16, 2026 22:25
@kevinlnew kevinlnew force-pushed the runway/vcs-extension branch 2 times, most recently from bf2831f to ac42742 Compare June 18, 2026 22:44
@kevinlnew kevinlnew changed the base branch from runway/entities to runway/rfc June 18, 2026 22:44
@kevinlnew kevinlnew changed the title [3/N] feat(runway): add VCS extension interface, mock, and noop impl [2/N] feat(runway): add VCS extension interface, mock, and noop impl Jun 18, 2026
@kevinlnew kevinlnew marked this pull request as ready for review June 22, 2026 20:56
@kevinlnew kevinlnew requested review from a team, behinddwalls and sbalabanov as code owners June 22, 2026 20:56
Comment thread runway/extension/vcs/vcs.go Outdated
CheckMergeability(ctx context.Context, req entity.MergeRequest) (entity.MergeResult, error)
// Land applies the ordered steps, commits the result to the remote, and
// reports per-step OutputIDs (the VCS-neutral revision identifiers produced).
Land(ctx context.Context, req entity.MergeRequest) (entity.MergeResult, error)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we just call it Merge

Comment thread runway/extension/vcs/vcs.go Outdated
// VCS performs version-control operations against a single landing target.
// Both methods accept the same MergeRequest payload; the behavioral difference
// is whether the result is committed to the remote.
type VCS interface {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we just call it Merger?

Add the pluggable VCS extension for Runway with the Merger interface
(CheckMergeability + Merge), using the landed proto-based MergeRequest/
MergeResult types from api/runway/messagequeue. Includes noop impl with
synthetic output IDs, generated mock, and table-driven tests.

Addresses review feedback: renamed VCS -> Merger, Land -> Merge.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@behinddwalls

Copy link
Copy Markdown
Collaborator

🛑 Automatic stack rebase aborted — diff mismatch

The rebase of runway/vcs-extension completed without conflicts, but the resulting code diff does not match the original. This means the rebase silently altered code content. The branch was not force-pushed.

Please rebase manually and verify the changes are correct.

@kevinlnew kevinlnew force-pushed the runway/vcs-extension branch from ac42742 to ce022df Compare June 23, 2026 23:24
@kevinlnew kevinlnew requested a review from behinddwalls June 23, 2026 23:24
@kevinlnew kevinlnew changed the title [2/N] feat(runway): add VCS extension interface, mock, and noop impl [2/N] feat(runway): add Merger extension interface, mock, and noop impl Jun 23, 2026
@@ -0,0 +1,58 @@
// Copyright (c) 2025 Uber Technologies, Inc.

@behinddwalls behinddwalls Jun 23, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lets rename the file and folder as well

Rename runway/extension/vcs/ to runway/extension/merger/ per review
feedback. Package, file, and mock names updated accordingly.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants